package Pojo;

import java.util.Calendar;
import java.util.List;
import java.text.*;

/** Classe Atividade
 * Classe que representa a Atividade de uma Dada Turma.
 * A atividade está relacionada com Turma e com o alunos através da classe Nota.
 * @author Ronan Lopes
 *
 */
public class Atividade {
	/** Código da Atividade */
	private int idAtividade;
	
	/** Nome da Atividade */
	private String nome;
	
	/** Tipo da Atividade */
	private String tipo;
	
	/** Data da Atividade */
	private Calendar data;
	
	/** Valor da Atividade */
	private double valor;
	
	/** Lista de Notas do Aluno*/
	private List<Nota> notas;
	
	/** Turma à qual a atividade pertence*/
	private Turma turma;

	/**
	 * Construtor de Atividade sem relacionamentos
	 * @param id
	 * @param nome
	 * @param tipo
	 * @param data
	 * @param valor
	 */
	public Atividade(int id, String nome, String tipo, Calendar data, double valor){
		this.setIdAtividade(id);
		this.setNome(nome);
		this.setTipo(tipo);
		this.setData(data);
		this.setValor(valor);
	}
	
	/**
	 * Construtor de Atividade com relacionamentos
	 * @param id
	 * @param nome
	 * @param tipo
	 * @param data
	 * @param valor
	 * @param turma
	 * @param listaNotas
	 */
	public Atividade(int id, String nome, String tipo, Calendar data, double valor, Turma turma,List<Nota> listaNotas){
		this(id, nome, tipo, data, valor);
		this.setTurma(turma);
		this.notas = listaNotas;
	}
	
	/**
	 * Sobrescrita do método toString
	 */
	@Override
	public String toString(){
        SimpleDateFormat formatodata = new SimpleDateFormat("dd/MM/yyyy");  //Converter Calendar para String
        String data = formatodata.format(this.getData().getTime());  
		return(this.getIdAtividade()+"\t"+this.getNome()+"\t"+this.getTipo()+"\t"+data+"\t"+this.getValor()+"\t"+this.turma.getIdTurma()+"\n");
	}

	/**
	 * Getter de Atividade
	 * @return Código da Atividade
	 */
	public int getIdAtividade(){
		return(this.idAtividade);
	}

	/**
	 * Setter de Atividade
	 * @param id
	 */
	private void setIdAtividade(int id){
		this.idAtividade = id;
	}

	/**
	 * Getter do Nome
	 * @return Nome da Atividade
	 */
	public String getNome(){
		return(this.nome);
	}

	/**
	 * Setter do Nome
	 * @param nome
	 */
	private void setNome(String nome){
		this.nome = nome;
	}
	
	/**
	 * Getter do Tipo
	 * @return Tipo da Atividade.
	 */
	public String getTipo(){
		return(this.tipo);
	}

	/**
	 * Setter do Tipo
	 * @param tipo
	 */
	private void setTipo(String tipo){
		this.tipo = tipo;
	}
	
	/**
	 * Getter da Data
	 * @return Calendar com a data da Atividade
	 */
	public Calendar getData(){
		return(this.data);
	}

	/**
	 * Setter da Data
	 * @param data
	 */
	private void setData(Calendar data){
		this.data = data;
	}
	
	/**
	 * Getter do Valor da Atividade
	 * @return Double com o valor da Atividade
	 */
	public double getValor(){
		return(this.valor);
	}

	/**
	 * Setter do Valor da Atividade
	 * @param valor
	 */
	private void setValor(double valor){
		this.valor = valor;
	}
	
	/**
	 * Getter da Turma 
	 * @return turma
	 */
	public Turma getTurma(){
		return(this.turma);
	}

	/**
	 * Setter da Turma
	 * @param turma
	 */
	private void setTurma(Turma turma){
		this.turma = turma;
	}
}
